User Settlement Detection

ABSTRACT

Methods, systems and computer program products for user settlement detection are disclosed. A mobile device configured to perform an action immediately upon entering or exiting a geofenced environment can delay performing the action until a user of the mobile device has settled into the environment. The mobile device can detect a settled user state by observing the environment of the mobile device, including measuring one or more environment variables using one or more sensors of the mobile device. The mobile device can detect a settled user state even when the mobile device is in motion. The mobile device can perform the action upon detecting a settled user state.

TECHNICAL FIELD

This disclosure relates generally to geofence-based services.

BACKGROUND

Some modern mobile devices can perform various actions when entering orexiting geofenced environments. When a mobile device detects an entranceinto or exit from a geofenced environment, an action is triggered. Forexample, the mobile device can display a notification upon entering ageofenced environment (e.g., an office in a building). The mobile devicecan determine that the mobile device entered the geofenced environmentusing various sensors and positioning technologies. Upon determiningthat the mobile device has entered the geofenced environment, the mobiledevice can display the notification.

Triggering the action immediately upon entry into or exit from ageofenced environment can be inconvenient to a user. For example, theuser may be able to respond to the notification only when the user hassettled down (e.g., is sitting at a desk in the office). If thenotification were to occur immediately when the user enters or exits thegeofenced environment and before the user settles down, the user may betoo distracted to see or react to the notification.

SUMMARY

Techniques for user settlement detection are disclosed below. A mobiledevice configured to perform an action immediately upon entering orexiting a geofenced environment can delay performing the action until auser of the mobile device has settled into the environment. The mobiledevice can detect a settled user state by observing the environment ofthe mobile device, including measuring one or more environment variablesusing one or more sensors of the mobile device. The mobile device candetect a settled user state even when the mobile device is in motion.The mobile device can perform the action upon detecting a settled userstate.

The features described in this specification can achieve one or moreadvantages. For example, compared to a conventional mobile device, amobile device implementing the techniques described in thisspecification can perform an action at a moment that is more convenientto a user. The mobile device can avoid presenting unnecessarygeofence-based notifications to a user when the user is merely crossingthe geofence rather than settling inside the geofenced environment. Themobile device can request the user to interact with the mobile deviceupon detecting a settled user state indicating that the user is settledand ready to interact with the mobile device. Accordingly, the mobiledevice can avoid or reduce false notifications (e.g., alarms) related togeofence crossings, thereby providing a better user experience. Byimplementing the features disclosed in this specification, a mobiledevice can add context to a geofence, instead of focusing only onlatitude and longitude of the geofence. Adding context to a geofence canenhance functions of geofence-based applications.

The details of one or more implementations of the subject matter are setforth in the accompanying drawings and the description below. Otherfeatures, aspects and advantages of the subject matter will becomeapparent from the description, the drawings and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating example user settlement detection.

FIG. 2 is a diagram illustrating example user settlement detection usingwireless access points.

FIG. 3 is a diagram illustrating example user settlement detection usingambient sound.

FIG. 4 is a block diagram illustrating components of an example mobiledevice configured to implement user settlement detection.

FIG. 5 is a flowchart of an example process of user settlementdetection.

FIG. 6 is a block diagram illustrating an exemplary device architectureof a mobile device implementing the features and operations described inreference to FIGS. 1-5.

FIG. 7 is a block diagram of an exemplary network operating environmentfor the mobile devices of FIGS. 1-6.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION Exemplary Settlement Detection

FIG. 1 is a diagram illustrating example user settlement detection.Mobile device 102 can be a device configured to perform an action uponentering geofenced environment 104. The action can be performing asystem function of mobile device 102 or executing an application programof mobile device 102. In the example shown, mobile device 102 isconfigured to display an alert “Please prepare tax” upon enteringgeofenced environment 104.

Geofenced environment 104 can be a geographic area (e.g., officebuilding 105) enclosed by a “virtual” fence. Mobile device 102 candetermine that mobile device 102 has crossed geofenced environment 104using various sensors and positioning technologies, for example, byusing signals from a global navigation satellite system (GNSS), wirelessaccess points (e.g., Wi-Fi™ access points) or both. Due to variationsand limitations of the technologies used, geofenced environment 104 mayor may not exactly match a footprint of office building 105.

In the example shown, mobile device 102 is carried into geofencedenvironment 104 by user 112. Mobile device 102 can determine that mobiledevice 102 entered geofenced environment 104 by detecting signals fromwireless access points 106, 108 and 110. Instead of immediatelydisplaying a notification (e.g., an alert) upon entering geofencedenvironment 104, mobile device 102 can determine whether user 112 issettled down.

User 112 has settled down when activity of user 112 as determined bymeasurements of environment variables indicates in a statistical sensethat the user 112 is ready to interact with mobile device 102 performingthe action. In the example shown, user 112 carries mobile device 102while walking along path 113, passing a lobby of office building 105 andentering an office of user 112. Walking along path 113 (as indicated bymotion sensors and a floorplan) is detected as unsettled. User 112 thensits down in a chair in her office. Sitting down in a chair in heroffice (as indicated by motion sensors and a floorplan) is detected assettled. Mobile device 102 can determine that user 112 has settled downafter user 112 sits in her chair even if mobile device 102 itself is inmotion. For example, mobile device 102 can determine that user 112 hassettled down even if user 112, after sitting down in the chair, pullsmobile device 102 from a pocket and shakes mobile device 102 orotherwise moves mobile device 102.

Upon determining that user 112 has settled down, mobile device 102 canperform the action, e.g., by displaying the alert on a screen 116 ofmobile device 102. Accordingly, mobile device 102 delays performing theaction from the time of geofence crossing to the time user 112 hassettled down.

Mobile device 102 implementing user settlement detection can determinethat user 112 settles down using one or more sensors of mobile device102 that measure environment variables. The sensors can measure variousaspects of wireless signals, ambient sound, air pressure, magneticfields and motion, among others. Further examples of user settlementdetection are described below in reference to FIGS. 2-3.

FIG. 2 is a diagram illustrating example user settlement detection usingwireless access points. Mobile device 102 can include a radio frequency(RF) signal receiver. The RF receiver can detect RF signals fromwireless access points 106, 108 and 110. The signals can encoderespective identifiers 202, 204 and 206 from wireless access points 106,108 and 110. In some implementations, each of identifiers 202, 204 and206 can be a media access control (MAC) address of a respective wirelessaccess point.

Mobile device 102 can record readings of the RF receiver. The readingscan include measurements of the RF signals. The measurements caninclude, for example, a respective received signal strength indicator(RSSI) for each signal. Mobile device 102 can record the readings attimes k, k+1, k+2 and so on. Time k can be an arbitrary time. Time k+1can be time k plus a discrete interval (e.g., one second, five second orten seconds). Mobile device 102 can designate measurements m at time kas observation vector z_(k). Observation vector z_(k) can have a numberof elements corresponding to a number of wireless access points ndetected by the receiver at time k, where each element in the vectorz_(k) is a measurement of a signal from a different wireless accesspoint i. Measurement matrix 208 (M_(k,i)) is a q×n matrix that can beconstructed from observation vectors z_(k) as follows:

$\begin{matrix}{M_{k,i} = \begin{bmatrix}m_{1,1} & m_{1,2} & \cdots & m_{1,n} \\m_{2,1} & m_{2,2} & \cdots & m_{2,n} \\\vdots & \vdots & \vdots & \vdots \\m_{q,1} & m_{q,2} & \ldots & m_{q,n}\end{bmatrix}} & \lbrack 1\rbrack\end{matrix}$

where the ith wireless access point measurement m is measured at the kthmeasurement time, i=1, 2, 3 . . . n, k=1, 2, 3 . . . q, n is a positiveinteger equal to the total number of wireless access points and q is apositive integer equal to the total number of measurement times in ameasurement window W. The window W represents the total amount of timeit takes for the user to settle down in geofenced environment 104. Thismatrix may be sparse, for example, when mobile device 102 is in anunsettled state and moves from one location to another, observingdifferent access points.

For example, mobile device 102 may measure access point signals fromAP1, AP2 and AP3 at time k, and access point signals AP2, AP3, AP4 andAP5 at time k+1, where each of AP1 through AP5 is an identifier (e.g.,MAC address) of a respective access point. Mobile device 102 can assigneach distinct access point to a distinct column in measurement matrix208.

In some implementations, each element of measurement matrix 208 can besignal measurement (e.g., RSSI in dBm) of a corresponding wirelessaccess point at a corresponding time. Mobile device 102 can determinewhether user 112 has settled down using measurement matrix 208. In someimplementations, mobile device 102 can determine that user 112 hassettled down upon determining that the measurements m in measurementmatrix 208 satisfy one or more of (1) a deviation threshold, (2) asparsity threshold or (3) a duty cycle threshold.

Deviation Threshold

In some implementations, mobile device 102 can determine an expectedvalue E[Xi] and standard deviation σi for a measurement of an RF signaltransmitted by wireless access point i, where Xi is the measurement(e.g., RSSI in dBm) of wireless access point i. Mobile device 102 cancreate a vector [σ_(t1) . . . σ_(ti) . . . σ_(tn)] of deviationthreshold for each wireless access point i. In some implementations, thevector elements [σ_(t1) . . . σ_(ti) . . . σ_(tn)] can be pre-specified(e.g., σ_(t1)=σ_(ti)=σ_(tn)=5 dBm). In some implementations, mobiledevice 102 can determine the vector elements [σ_(t1), . . . σ_(ti), . .. σ_(tn)] by measuring standard deviations of the measurements during atime period p when a motion sensor (e.g., an accelerometer or gyro ratesensor) indicates that mobile device 102 is stationary. Time period pmay be the same as or shorter than time window W. Mobile device 102 cancalculate deviation thresholds deviations [σ_(t1) . . . σ_(ti) . . .σ_(tn)] of the measurements at time period p when the motion sensorindicates that mobile device 102 is stationary. Mobile device 102 candetermine that measurement matrix 208 satisfies the deviation thresholdupon determining each standard deviation σi for wireless access point iis less than the corresponding deviation threshold for wireless accesspoint i (σ_(ti)).

Sparsity Threshold

In some implementations, mobile device 102 can determine a sparsity S ofmeasurement matrix 208. Mobile device 102 can determine that themeasurement matrix 208 is sparse upon determining that the sparsity S issmaller than a predefined value. The predefined value can be determinedby mobile device 102 using a supervised or unsupervised learning scheme.More particularly, mobile device 102 can determine the sparsity S bydetermining the number of elements of measurement matrix 208 that arenull or zero. Mobile device 102 can then determine the sparsity S bydividing the number of null or zero elements by the size of measurementmatrix 208, which in Equation [1] is a q×n matrix. Mobile device 102 candesignate as null or zero an element in measurement matrix 208corresponding to wireless access point APi at measurement time k+1 when,for example, the access point APi is detected at measurement time k butnot detected at measurement time k+1.

Duty Cycle Threshold

In some implementations, mobile device 102 can determine a respectiveduty cycle Di for each access point APi (i=1, 2, 3, . . . n) representedin measurement matrix 208. For example, mobile device 102 can obtain apre-specified or calculated duty cycle threshold (e.g., 80 percent).Mobile device 102 can determine that measurement matrix 208 satisfiesthe duty cycle threshold if each duty cycle Di is greater than the dutycycle threshold d_(ti). Mobile device 102 can determine the duty cycleDi by dividing the time wireless access point i is detected by the totaltime. In particular, for example, if mobile device 102 detects aparticular access point i m times in the q periods, mobile device 102can designate the ratio m over q as the duty ratio, as shown below inEquation [2].

$\begin{matrix}{D_{i} = {\frac{m}{q} > d_{ti}}} & \lbrack 2\rbrack\end{matrix}$

FIG. 3 is a diagram illustrating example settlement detection usingambient sound. Mobile device 102 can include a microphone. Mobile device102 can record ambient sound at various times k, k+1, k+2 and so on.Each recording can last a specified time period (e.g., 0.1 seconds).Mobile device 102 can convert the sound to the frequency domain using,for example, a Fast Fourier Transform (FFT) on each recording. Mobiledevice 102 can determine a respective frequency spectrum 302 for eachrecording.

Mobile device 102 can determine measurement matrix 304 for the ambientsound measurements. Measurement matrix 304 can have a time dimensionincluding measurement times k, k+1, k+2 and so on. Measurement matrix304 can have a frequency dimension that corresponds to a list offrequencies, e.g., 100 Hz, 500 Hz, 2.5 k Hz, etc. Each respectiveambient sound measurement in frequency Fi at measurement time k can be apower level in decibel (dB).

Mobile device 102 can determine an expected power level E[Pi] and astandard deviation of the power level σi for each frequency Fi. Mobiledevice 102 can determine that user 112 has settled down when eachstandard deviation σi satisfies a corresponding sound deviationthreshold σ_(ti). In some implementations, mobile device 102 can assigneach sound deviation threshold σ_(ti) using a pre-specified value (e.g.,10 dB). In some implementations, mobile device 102 can determine eachsound deviation threshold σ_(ti) using standard deviations ofmeasurements recorded by a microphone of the mobile device at a timewhen a motion sensor of mobile device 102 indicates that mobile device102 is stationary.

FIGS. 2-3 illustrate settlement detection using RF signals and soundlevels. Mobile device 102 can use other sensor readings, e.g., barometerreadings, light sensor readings, hygrometer readings or thermometerreadings to determine whether user 112 has settled down in a similarmanner. In some implementations, mobile device 102 can determine whetheruser 112 has settled down using weighted voting of the thresholdcalculations from various sensor readings.

Exemplary Device Components

FIG. 4 is a block diagram illustrating components of example mobiledevice 102 configured to detect user settlement. Mobile device 102 caninclude, or couple to, sensors 402. Sensors 402 can include, forexample, one or more RF receivers, microphones, barometers, lightsensors, thermometers, hygrometers. In particular, sensors 402 caninclude one or more motion sensors 404. Motion sensors 404 can include,for example, one or more gyroscopes, accelerometers or magnetometers.

Mobile device 102 can include geofence module 406. Geofence module 406is a component of mobile device 102 configured to determine whethermobile device 102 entered a geofenced environment (e.g., geofencedenvironment 104) for performing an action using readings from sensors402. Upon determining that mobile device 102 entered the geofencedenvironment, geofence module 406 can send a notification to settlementdecider 408 requesting settlement decider 408 to decide whether user 112of mobile device 102 has settled down.

Upon receiving the notification, settlement decider 408 can obtainsensor readings 410 from sensors 402 over a time period. Settlementdecider 408 can generate one or more measurement matrices (e.g.,measurement matrix 208, measurement matrix 304 or both) from sensorreadings 410. Settlement decider 408 can obtain pre-specified thresholds412 from threshold database 416. Alternatively or additionally,settlement decider 408 can obtain learned thresholds 418 from thresholdgenerator 420. Threshold database 416 can be a data store on mobiledevice 102 or located remote from mobile device 102 storingpre-specified thresholds 412. Pre-specified thresholds 412 can includesparsity thresholds, deviation thresholds, duty cycle thresholds or anycombination of the above.

Threshold generator 420 can be a component of mobile device 102configured to determine one or more learned thresholds 418 from readingsof sensors 402. In particular, threshold generator 420 can determinedeviation thresholds of sensor measurements when motion sensor 404indicates that mobile device 102 is stationary. Threshold generator 420can then designate those deviation thresholds as learned thresholds 418.Determining the deviation thresholds of sensor measurements can takeplace in a time period that is shorter than the time window fordetermining that user 112 has settled down. Determining the deviationthresholds of sensor measurements can be in real time or can occur at anearlier time. The learned thresholds 418 that were determined at anearlier time can be stored in threshold database 416 for laterretrieval.

Upon generating the measurement matrices and obtaining the deviationthresholds, settlement decider 408 can determine whether user 112 hassettled down (hereinafter also referred to as “user settled state”).Upon determining that user 112 has settled down, settlement decider 408can notify action management module 422. Action management module 422 isa component of mobile device 102 configured to perform the actionassociated with a geofence upon receiving a notification from settlementdecider 408.

Exemplary Procedures

FIG. 5 is a flowchart of example process 500 of settlement detection.Process 500 can be performed device architecture 600, as described inreference to FIG. 6.

Mobile device 102 can detect (502) an entrance of mobile device 102 intoa geofenced environment (e.g., geofenced environment 104). The geofencedenvironment can be associated with an action that requires interactionwith a user. Mobile device 102 can be configured to perform the actionafter entering the geofenced environment.

In response to detecting the entrance, mobile device 102 can determine(504) a context of the geofenced environment. A context of the geofencedenvironment can include information additional to geographic locationinformation (e.g., latitude and longitude) of the geofenced area. Thecontext can include user activities, a set of environment variables orboth. Determining the context can include, for example, determining thatmobile device 102 is in a user settled state. The user settled state canbe a state of mobile device 102 in which mobile device 102 deems a userof mobile device 102 has settled. Determining that mobile device 102 isin the user settled state can include taking multiple measurements ofenvironment variables over time, determining variations of themeasurements and comparing the variations with threshold values. Thevariations can include statistical variations (e.g., standard deviationsor variances of RSSI), non-statistical variations (e.g., duty cycles ofthe access points) or both. Mobile device 102 can determine the usersettled state upon determining that the variations satisfy the thresholdvalues. The threshold values can include at least one of a sparsitythreshold, a deviation threshold or a duty cycle threshold.

Determining that the variations satisfy the threshold values can includeconstructing a measurement matrix (e.g., measurement matrix 208 or 304)by mobile device 102. The measurement matrix can have a first dimensioncorresponding to the observed signal sources and a second dimensioncorresponding to a series of time measurements, as shown in Equation[1]. The measurement matrix can have elements representing measurementsof observed signals from the signal sources at respective measurementtimes. In some implementations, the measurements can includemeasurements of wireless signals from observed signal sources. Theobserved signal sources can include at least one of access points of awireless local area network or devices of a personal area network.Mobile device 102 can determine that the variations satisfy thethreshold values using at least one of a sparsity threshold, a deviationthreshold, or a duty cycle threshold.

Mobile device 102 can determine that the variations satisfy thethreshold values upon determining that the measurement matrix has asparsity that is less than a sparsity threshold. The sparsity of thematrix can indicate a frequency at which signal sources are observed andthen lost by mobile device 102. A higher sparsity of the matrixindicates a higher frequency of signal source detection and loss. Thesparsity threshold can be a pre-specified threshold value stored onmobile device 102.

Mobile device 102 can determine that the variations satisfy thethreshold values upon determining that standard deviations of themeasurements over the time periods are less than a deviation threshold.Determining that the standard deviations of the measurements over thetime periods are less than the deviation threshold can includedetermining the deviation threshold in real time. Mobile device 102 candetermine deviation thresholds of the observed signals at a time whenone or more motion sensor readings indicate that mobile device 102 isstationary.

Mobile device 102 can determine that the variations satisfy thethreshold values upon determining that duty cycles of the observedsignals over the time period are greater than a duty cycle threshold.The duty cycle threshold can include a vector having a respectiveelement corresponding to each signal source. Each element of the vectorcan be a respective ratio of an active time of the corresponding signalsource over a sum of the time periods. Mobile device 102 can determinethat the duty cycles of the observed signals satisfy the duty cyclethreshold upon determining that each duty cycle is greater than acorresponding duty cycle threshold, as shown in Equation [2].

Mobile device 102 can trigger (506) the action upon detecting thecontext, e.g., upon detecting a user settled state. Triggering theaction can include executing an application program or performing asystem function. Each of executing the application program or performingthe system function can cause mobile device 102 to present visual, audioor force feedback. In some implementations, a user interface ispresented to allow the user to interact with mobile device 102.

Example Mobile Device Architecture

FIG. 6 is a block diagram of an exemplary architecture 600 for themobile devices of FIGS. 1-5. A mobile device (e.g., mobile device 102)can include memory interface 602, one or more data processors, imageprocessors and/or processors 604, and peripherals interface 606. Memoryinterface 602, one or more processors 604 and/or peripherals interface606 can be separate components or can be integrated in one or moreintegrated circuits. Processors 604 can include application processors,baseband processors, and wireless processors. The various components inmobile device 102, for example, can be coupled by one or morecommunication buses or signal lines.

Sensors, devices and subsystems can be coupled to peripherals interface606 to facilitate multiple functionalities. For example, motion sensor610, light sensor 612 and proximity sensor 614 can be coupled toperipherals interface 606 to facilitate orientation, lighting andproximity functions of the mobile device. Location processor 615 (e.g.,GPS receiver) can be connected to peripherals interface 606 to providegeopositioning. Electronic magnetometer 616 (e.g., an integrated circuitchip) can also be connected to peripherals interface 606 to provide datathat can be used to determine the direction of magnetic North. Thus,electronic magnetometer 616 can be used as an electronic compass. Motionsensor 610 can include one or more accelerometers configured todetermine change of speed and direction of movement of the mobiledevice. Barometer 617 can include one or more devices connected toperipherals interface 606 and configured to measure pressure ofatmosphere around the mobile device.

Camera subsystem 620 and an optical sensor 622, e.g., a charged coupleddevice (CCD) or a complementary metal-oxide semiconductor (CMOS) opticalsensor, can be utilized to facilitate camera functions, such asrecording photographs and video clips.

Communication functions can be facilitated through one or more wirelesscommunication subsystems 624, which can include radio frequencyreceivers and transmitters and/or optical (e.g., infrared) receivers andtransmitters. The specific design and implementation of thecommunication subsystem 624 can depend on the communication network(s)over which a mobile device is intended to operate. For example, a mobiledevice can include communication subsystems 624 designed to operate overa GSM network, a GPRS network, an EDGE network, a Wi-Fi™ or WiMax™network and a Bluetooth™ network. In particular, the wirelesscommunication subsystems 624 can include hosting protocols such that themobile device can be configured as a base station for other wirelessdevices.

Audio subsystem 626 can be coupled to a speaker 628 and a microphone 630to facilitate voice-enabled functions, such as voice recognition, voicereplication, digital recording, and telephony functions. Audio subsystem626 can be configured to receive voice commands from the user.

I/O subsystem 640 can include touch surface controller 642 and/or otherinput controller(s) 644. Touch surface controller 642 can be coupled toa touch surface 646 or pad. Touch surface 646 and touch surfacecontroller 642 can, for example, detect contact and movement or breakthereof using any of a plurality of touch sensitivity technologies,including but not limited to capacitive, resistive, infrared, andsurface acoustic wave technologies, as well as other proximity sensorarrays or other elements for determining one or more points of contactwith touch surface 646. Touch surface 646 can include, for example, atouch screen.

Other input controller(s) 644 can be coupled to other input/controldevices 648, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of speaker 628 and/or microphone 630.

In one implementation, a pressing of the button for a first duration maydisengage a lock of the touch surface 646; and a pressing of the buttonfor a second duration that is longer than the first duration may turnpower to mobile device 102 on or off. The user may be able to customizea functionality of one or more of the buttons. The touch surface 646can, for example, also be used to implement virtual or soft buttonsand/or a keyboard.

In some implementations, mobile device 102 can present recorded audioand/or video files, such as MP3, AAC, and MPEG files. In someimplementations, mobile device 102 can include the functionality of anMP3 player. Other input/output and control devices can also be used.

Memory interface 602 can be coupled to memory 650. Memory 650 caninclude high-speed random access memory and/or non-volatile memory, suchas one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory (e.g., NAND, NOR). Memory 650 canstore operating system 652, such as iOS, Darwin, RTXC, LINUX, UNIX, OSX, WINDOWS, or an embedded operating system such as VxWorks. Operatingsystem 652 may include instructions for handling basic system servicesand for performing hardware dependent actions. In some implementations,operating system 652 can include a kernel (e.g., UNIX kernel).

Memory 650 may also store communication instructions 654 to facilitatecommunicating with one or more additional devices, one or more computersand/or one or more servers. Memory 650 may include graphical userinterface instructions 656 to facilitate graphic user interfaceprocessing; sensor processing instructions 658 to facilitatesensor-related processing and functions; phone instructions 660 tofacilitate phone-related processes and functions; electronic messaginginstructions 662 to facilitate electronic-messaging related processesand functions; web browsing instructions 664 to facilitate webbrowsing-related processes and functions; media processing instructions666 to facilitate media processing-related processes and functions;GPS/Navigation instructions 668 to facilitate GPS and navigation-relatedprocesses and instructions; camera instructions 670 to facilitatecamera-related processes and functions; magnetometer data 672 andcalibration instructions 674 to facilitate magnetometer calibration. Thememory 650 may also store other software instructions (not shown), suchas security instructions, web video instructions to facilitate webvideo-related processes and functions and/or web-shopping instructionsto facilitate web shopping-related processes and functions. In someimplementations, the media processing instructions 666 are divided intoaudio processing instructions and video processing instructions tofacilitate audio processing-related processes and functions and videoprocessing-related processes and functions, respectively. An activationrecord and International Mobile Equipment Identity (IMEI) or similarhardware identifier can also be stored in memory 650. Memory 650 canstore settlement detection instructions 676 that, when executed, cancause processor 604 to perform operations of determining whether mobiledevice 102 is in a user settled state after entering a geofencedenvironment. The operations can including the operations described inFIGS. 1-5.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures or modules. Memory 650 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the mobile device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits.

Exemplary Operating Environment

FIG. 7 is a block diagram of an exemplary network operating environment700 for the mobile devices of FIGS. 1-6. Mobile devices 702 a and 702 bcan, for example, communicate over one or more wired and/or wirelessnetworks 710 in data communication. For example, a wireless network 712,e.g., a cellular network, can communicate with a wide area network (WAN)714, such as the Internet, by use of a gateway 716. Likewise, an accessdevice 718, such as an 802.11g or 802.11n wireless access point, canprovide communication access to the wide area network 714. Each ofmobile devices 702 a and 702 b can be mobile device 102 as describedabove in reference to FIGS. 1-6.

In some implementations, both voice and data communications can beestablished over wireless network 712 and the access device 718. Forexample, mobile device 702 a can place and receive phone calls (e.g.,using voice over Internet Protocol (VoIP) protocols), send and receivee-mail messages (e.g., using Post Office Protocol 3 (POP3)), andretrieve electronic documents and/or streams, such as web pages,photographs, and videos, over wireless network 712, gateway 716, andwide area network 714 (e.g., using Transmission ControlProtocol/Internet Protocol (TCP/IP) or User Datagram Protocol (UDP)).Likewise, in some implementations, the mobile device 702 b can place andreceive phone calls, send and receive e-mail messages, and retrieveelectronic documents over the access device 718 and the wide areanetwork 714. In some implementations, mobile device 702 a or 702 b canbe physically connected to the access device 718 using one or morecables and the access device 718 can be a personal computer. In thisconfiguration, mobile device 702 a or 702 b can be referred to as a“tethered” device.

Mobile devices 702 a and 702 b can also establish communications byother means. For example, wireless mobile device 702 a can communicatewith other wireless devices, e.g., other mobile devices, cell phones,etc., over the wireless network 712. Likewise, mobile devices 702 a and702 b can establish peer-to-peer communications 720, e.g., a personalarea network, by use of one or more communication subsystems, such asthe Bluetooth™ communication devices. Other communication protocols andtopologies can also be implemented.

The mobile device 702 a or 702 b can, for example, communicate with oneor more services 730 and 740 over the one or more wired and/or wirelessnetworks. For example, one or more geofence services 730 can allowmobile devices 702 a and 702 b to download and execute geofence relatedapplications. Settlement threshold service 740 can provide informationincluding various thresholds for detecting user settlements to themobile devices 702 a and 702 b.

Mobile device 702 a or 702 b can also access other data and content overthe one or more wired and/or wireless networks. For example, contentpublishers, such as news sites, Really Simple Syndication (RSS) feeds,web sites, blogs, social networking sites, developer networks, etc., canbe accessed by mobile device 702 a or 702 b. Such access can be providedby invocation of a web browsing function or application (e.g., abrowser) in response to a user touching, for example, a Web object.

As described above, some aspects of the subject matter of thisspecification include gathering and use of data available from varioussources to improve services a mobile device can provide to a user. Thepresent disclosure contemplates that in some instances, this gathereddata may identify a particular location or an address based on deviceusage. Such personal information data can include location based data,addresses, subscriber account identifiers, or other identifyinginformation.

The present disclosure further contemplates that the entitiesresponsible for the collection, analysis, disclosure, transfer, storage,or other use of such personal information data will comply withwell-established privacy policies and/or privacy practices. Inparticular, such entities should implement and consistently use privacypolicies and practices that are generally recognized as meeting orexceeding industry or governmental requirements for maintaining personalinformation data private and secure. For example, personal informationfrom users should be collected for legitimate and reasonable uses of theentity and not shared or sold outside of those legitimate uses. Further,such collection should occur only after receiving the informed consentof the users. Additionally, such entities would take any needed stepsfor safeguarding and securing access to such personal information dataand ensuring that others with access to the personal information dataadhere to their privacy policies and procedures. Further, such entitiescan subject themselves to evaluation by third parties to certify theiradherence to widely accepted privacy policies and practices.

In the case of advertisement delivery services, the present disclosurealso contemplates embodiments in which users selectively block the useof, or access to, personal information data. That is, the presentdisclosure contemplates that hardware and/or software elements can beprovided to prevent or block access to such personal information data.For example, in the case of advertisement delivery services, the presenttechnology can be configured to allow users to select to “opt in” or“opt out” of participation in the collection of personal informationdata during registration for services.

Therefore, although the present disclosure broadly covers use ofpersonal information data to implement one or more various disclosedembodiments, the present disclosure also contemplates that the variousembodiments can also be implemented without the need for accessing suchpersonal information data. That is, the various embodiments of thepresent technology are not rendered inoperable due to the lack of all ora portion of such personal information data. For example, content can beselected and delivered to users by inferring preferences based onnon-personal information data or a bare minimum amount of personalinformation, such as the content being requested by the deviceassociated with a user, other non-personal information available to thecontent delivery services, or publically available information.

A number of implementations of the invention have been described.Nevertheless, it will be understood that various modifications can bemade without departing from the spirit and scope of the invention.

What is claimed is:
 1. A method comprising: detecting, by a mobiledevice, an entrance of the mobile device into a geofenced environment,the geofenced environment being associated with an action, the mobiledevice being configured to perform the action upon entering thegeofenced environment; in response to detecting the entrance,determining, by the mobile device, a context of the geofencedenvironment by taking multiple measurements of one or more environmentvariables using one or more sensors of the mobile device, determiningvariations in the measurements, and comparing the variations tothreshold values; and triggering the action by the mobile device upondetermining the context of the geofenced environment.
 2. The method ofclaim 1, wherein determining the context of the geofenced environmentcomprises determining a user settled state indicating that a user of themobile device is ready to interact with the mobile device.
 3. The methodof claim 2, wherein: determining the context of the geofencedenvironment comprises determining that the variations satisfy thethreshold values including at least one of a sparsity threshold, adeviation threshold or a duty cycle threshold, and the measurementsinclude measurements of wireless signals from observed signal sourcesincluding at least one of access points of a wireless local area networkor devices of a personal area network.
 4. The method of claim 3, whereindetermining that the variations satisfy the threshold values comprises:determining a measurement matrix having a first dimension correspondingto the observed signal sources and a second dimension corresponding to aseries of measurement time periods, the measurement matrix havingelements representing measurements of signals from the observed signalsources at respective measurement time periods; and determining that thevariations satisfy the threshold values upon determining at least oneof: that the matrix has a sparsity that is less than the sparsitythreshold; that standard deviations of the measurements over the timeperiods satisfy the deviation threshold; or that duty cycles of theobserved signal sources over the measurement time period are greaterthan the duty cycle threshold.
 5. The method of claim 4, whereindetermining that the standard deviations of the measurements over themeasurement time periods satisfy the deviation threshold comprises:determining the deviation threshold, including determining standarddeviations of the observed signals at a time when one or more motionsensor readings indicate that the mobile device is not moving; anddetermining that the standard deviations of the observed signals overthe time periods are less than the deviation threshold.
 6. The method ofclaim 4, wherein the sparsity of the matrix indicates a frequency atwhich signal sources are observed and then lost by the mobile device,and the sparsity threshold is a pre-specified threshold stored on themobile device.
 7. The method of claim 4, wherein the duty cyclethreshold comprises a vector having a respective element correspondingto each signal source, each element specifying a respective ratio ofactive time of the corresponding signal source over a sum of the seriesof time periods.
 8. The method of claim 1, wherein triggering the actioncomprises executing an application program or performing a systemfunction, wherein each of executing the application program orperforming the system function causes the mobile device to present auser interface for the user to interact with the mobile device.
 9. Asystem, comprising: one or more processors; and a non-transitorycomputer-readable medium storing instructions that, when executed by theone or more processors, cause the one or more processors to performoperations comprising: detecting an entrance of a mobile device into ageofenced environment, the geofenced environment being associated withan action, the mobile device being configured to perform the action uponentering the geofenced environment; in response to detecting theentrance, determining a context of the geofenced environment by takingmultiple measurements of one or more environment variables using one ormore sensors of the mobile device, determining variations in themeasurements, and comparing the variations to threshold values; andtriggering the action upon determining the context of the geofencedenvironment.
 10. The system of claim 9, wherein determining the contextof the geofenced environment comprises determining a user settled stateindicating that a user of the mobile device is ready to interact withthe mobile device.
 11. The system of claim 10, wherein: determining thecontext of the geofenced environment comprises determining that thevariations satisfy the threshold values including at least one of asparsity threshold, a deviation threshold or a duty cycle threshold, andthe measurements include measurements of wireless signals from observedsignal sources including at least one of access points of a wirelesslocal area network or devices of a personal area network.
 12. The systemof claim 11, wherein determining that the variations satisfy thethreshold values comprises: determining a measurement matrix having afirst dimension corresponding to the observed signal sources and asecond dimension corresponding to a series of measurement time periods,the measurement matrix having elements representing measurements ofsignals from the observed signal sources at respective measurement timeperiods; and determining that the variations satisfy the thresholdvalues upon determining at least one of: that the matrix has a sparsitythat is less than the sparsity threshold; that standard deviations ofthe measurements over the time periods satisfy the deviation threshold;or that duty cycles of the observed signal sources over the measurementtime period are greater than the duty cycle threshold.
 13. The system ofclaim 12, wherein determining that the standard deviations of themeasurements over the measurement time periods satisfy the deviationthreshold comprises: determining the deviation threshold, includingdetermining standard deviations of the observed signals at a time whenone or more motion sensor readings indicate that the mobile device isnot moving; and determining that the standard deviations of the observedsignals over the time periods are less than the deviation threshold. 14.The system of claim 12, wherein the sparsity of the matrix indicates afrequency at which signal sources are observed and then lost by themobile device, and the sparsity threshold is a pre-specified thresholdstored on the mobile device.
 15. The system of claim 12, wherein theduty cycle threshold comprises a vector having a respective elementcorresponding to each signal source, each element specifying arespective ratio of active time of the corresponding signal source overa sum of the series of time periods.
 16. The system of claim 9, whereintriggering the action comprises executing an application program orperforming a system function, wherein each of executing the applicationprogram or performing the system function causes the mobile device topresent a user interface for the user to interact with the mobiledevice.
 17. A non-transitory computer-readable medium storinginstructions that, when executed by one or more processors, cause theone or more processors to perform operations comprising: detecting anentrance of a mobile device into a geofenced environment, the geofencedenvironment being associated with an action, the mobile device beingconfigured to perform the action upon entering the geofencedenvironment; in response to detecting the entrance, determining acontext of the geofenced environment by taking multiple measurements ofone or more environment variables using one or more sensors of themobile device, determining variations in the measurements, and comparingthe variations to threshold values; and triggering the action upondetermining the context of the geofenced environment.
 18. Thenon-transitory computer-readable medium of claim 17, wherein determiningthe context of the geofenced environment comprises determining a usersettled state indicating that a user of the mobile device is ready tointeract with the mobile device.
 19. The non-transitorycomputer-readable medium of claim 18, wherein: determining the contextof the geofenced environment comprises determining that the variationssatisfy the threshold values including at least one of a sparsitythreshold, a deviation threshold or a duty cycle threshold, and themeasurements include measurements of wireless signals from observedsignal sources including at least one of access points of a wirelesslocal area network or devices of a personal area network.
 20. Thenon-transitory computer-readable medium of claim 19, wherein determiningthat the variations satisfy the threshold values comprises: determininga measurement matrix having a first dimension corresponding to theobserved signal sources and a second dimension corresponding to a seriesof measurement time periods, the measurement matrix having elementsrepresenting measurements of signals from the observed signal sources atrespective measurement time periods; and determining that the variationssatisfy the threshold values upon determining at least one of: that thematrix has a sparsity that is less than the sparsity threshold; thatstandard deviations of the measurements over the time periods satisfythe deviation threshold; or that duty cycles of the observed signalsources over the measurement time period are greater than the duty cyclethreshold.
 21. The non-transitory computer-readable medium of claim 20,wherein determining that the standard deviations of the measurementsover the measurement time periods satisfy the deviation thresholdcomprises: determining the deviation threshold, including determiningstandard deviations of the observed signals at a time when one or moremotion sensor readings indicate that the mobile device is not moving;and determining that the standard deviations of the observed signalsover the time periods are less than the deviation threshold.
 22. Thenon-transitory computer-readable medium of claim 20, wherein thesparsity of the matrix indicates a frequency at which signal sources areobserved and then lost by the mobile device, and the sparsity thresholdis a pre-specified threshold stored on the mobile device.
 23. Thenon-transitory computer-readable medium of claim 20, wherein the dutycycle threshold comprises a vector having a respective elementcorresponding to each signal source, each element specifying arespective ratio of active time of the corresponding signal source overa sum of the series of time periods.
 24. The non-transitorycomputer-readable medium of claim 17, wherein triggering the actioncomprises executing an application program or performing a systemfunction, wherein each of executing the application program orperforming the system function causes the mobile device to present auser interface for the user to interact with the mobile device.